package com.showsu.editor.entity.remote.batmkeyPrivate;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @Author: William
 * @Description: http://shuxiu.apitime.batmkey.cn:8061/api/xhs/note/page?key=53e8d20e-3ffc-4f3e-83e3-020904844f261700218314348&note_id=659f8bc7000000001d031666
 * 以上接口的响应结果
 * @Date: Created in 5:09 下午 2024/1/26
 * @Modified By:
 */
@Data
public class BatmkeyPrivateXhsAwemeDetailResult implements Serializable {

    private Integer code;
    private String msg;
    private BatmkeyPrivateXhsAwemeDetailData data;

    @Data
    public class BatmkeyPrivateXhsAwemeDetailData implements Serializable {
        private String id;
        private String model_type;
        private Note note_card;

        @Data
        public class Note implements Serializable {
            private List<AtUserList> at_user_list;
            private String desc;
            private List<Cover> image_list;
            private InteractInfo interact_info;
            private String ip_location;
            private String note_id;
            private Long last_update_time;
            private ShareInfo share_info;
            private List<Tag> tag_list;
            private Long time;
            private String title;
            private String type;
            private User user;

            @Data
            public class AtUserList implements Serializable {
                private String nickname;
                private String user_id;
            }

            @Data
            public class Cover implements Serializable {
                private String fileid;
                private Integer height;
                private Integer width;
                private String url;
                private String trace_id;
                private List<CoverInfo> info_list;
                private Boolean live_photo;
                private Stream stream;

                @Data
                public class CoverInfo implements Serializable {
                    private String image_scene;
                    private String url;
                }

                @Data
                public class Stream implements Serializable {
                    private List<H264> h264;

                    @Data
                    public class H264 implements Serializable {
                        private String master_url;
                        private List<String> backup_urls;
                    }
                }
            }

            @Data
            public class User implements Serializable {
                private String avatar;
                private String nickname;
                private String user_id;
            }

            @Data
            public class ShareInfo implements Serializable {
                private Boolean un_share;
            }

            @Data
            public class Tag implements Serializable {
                private String id;
                private String name;
                private String type;
            }

            @Data
            public class InteractInfo implements Serializable {
                private Boolean liked;
                private Integer liked_count;
                private Boolean collected;
                private Integer collected_count;
                private Integer comment_count;
                private Boolean followed;
                private String relation;
                private Integer share_count;
            }
        }
    }
}
